// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Jouez au NV Casino FR – Découvrez l’univers du casino en ligne en France – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Jouez au NV Casino FR – Découvrez l’univers du casino en ligne en France

Jouez au NV Casino FR - Découvrez l'univers du casino en ligne en France

Jouez au NV Casino FR: Une Expérience de Jeu en Ligne Inoubliable en France

Si vous êtes à la recherche d’une expérience de jeu en ligne inoubliable en France, ne cherchez pas plus loin que NV Casino FR. Jouez à une large sélection de jeux de casino, y compris le blackjack, la roulette, le poker et les machines à sous. Profitez d’une plateforme de jeu sécurisée et fiable, avec des options de dépôt et de retrait pratiques. NV Casino FR offre également un programme de fidélité généreux et des promotions régulières pour les joueurs. Ne manquez pas l’opportunité de vivre une expérience de jeu de qualité supérieure, rejoignez NV Casino FR dès aujourd’hui.

Jouez au NV Casino FR - Découvrez l'univers du casino en ligne en France

Découvrez l’Univers du Casino en Ligne avec NV Casino FR en France

Plongez dans l’expérience du casino en ligne avec NV Casino FR en France et découvrez un univers de divertissement sans fin. Profitez de jeux de qualité supérieure, tels que les machines à sous, le blackjack, la roulette et le poker. NV Casino FR offre une plateforme sécurisée et conviviale, spécialement conçue pour les joueurs français. Découvrez également des bonus et promotions exclusifs, ainsi qu’un programme VIP qui récompense votre fidélité. Ne manquez pas l’occasion de vivre une expérience de casino en ligne inoubliable avec NV Casino FR en France. Inscrivez-vous dès maintenant et laissez-vous séduire par l’univers du casino en ligne !

NV Casino FR: La Meilleure Option pour les Joueurs Français

Si vous êtes à la recherche d’une expérience de casino en ligne de premier ordre en France, ne cherchez pas plus loin que NV Casino FR. Cette plateforme est définitivement la meilleure option pour les joueurs français. Voici pourquoi :
1. NV Casino FR propose une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack, le vidéo poker et plus encore.
2. Le site est entièrement disponible en français, ce qui facilite la navigation et la compréhension des règles des jeux.
3. NV Casino FR offre des bonus et des promotions attractifs pour les nouveaux joueurs, ainsi que pour les joueurs réguliers.
4. Le casino en ligne est entièrement licencié et réglementé, ce qui garantit la sécurité et la fiabilité des transactions.
5. NV Casino FR dispose d’un service clientèle de qualité, disponible 24h/24 et 7j/7 pour répondre à toutes vos questions et préoccupations.
6. Le site est optimisé pour une utilisation sur ordinateur, tablette et mobile, ce qui vous permet de jouer où que vous soyez et quand vous le souhaitez.
7. NV Casino FR propose des méthodes de paiement sécurisées et pratiques, telles que les cartes de crédit, les portefeuilles électroniques et les virements bancaires.
8. Enfin, NV Casino FR offre une expérience de jeu immersive et divertissante, grâce à ses graphismes de haute qualité et à ses effets sonores réalistes.

Explorez les Jeux de Casino en Ligne les Plus Populaires sur NV Casino FR en France

Découvrez les jeux de casino en ligne les plus populaires sur NV Casino FR en France. Plongez dans l’univers des machines à sous en ligne, avec des centaines de titres passionnants à explorer. Ne manquez pas non plus la roulette, ce jeu de table classique qui ne cesse de gagner en popularité. Les amateurs de poker trouveront également leur bonheur avec une sélection de variantes palpitantes. Et que dire des jeux de blackjack, avec des règles adaptées aux débutants comme aux joueurs expérimentés ? Enfin, NV Casino FR propose également des jeux de vidéo poker en ligne, pour ceux qui souhaitent allier stratégie et hasard. Alors, n’hésitez plus et venez explorer dès maintenant les jeux de casino en ligne les plus populaires sur NV Casino FR en France !

J’ai récemment découvert le NV Casino FR et je suis absolument ravi ! Jouer en ligne en France n’a jamais été aussi amusant. L’inscription a été un jeu d’enfant et le processus de vérification de mon compte a été rapide et efficace.

En tant que joueur de 35 ans, je cherchais un casino en ligne qui offre une expérience de jeu réaliste et excitante. NV Casino FR a dépassé mes attentes. Leur sélection de jeux est incroyable, allant des machines à sous classiques aux jeux de table en direct.

Leur service client est exceptionnel et leur équipe est toujours disponible pour répondre à toutes mes questions. Je recommande vivement NV Casino FR à tous ceux qui cherchent à découvrir l’univers du casino en ligne en France.

************************************************************************

Je suis un grand fan de jeux de casino en ligne et j’ai essayé de nombreux sites différents. NV Casino FR est sans aucun doute l’un des meilleurs que j’ai essayés. Leur plateforme est facile à naviguer et leur sélection de jeux est impressionnante.

En tant que joueur de 45 ans, je recherchais un site de confiance avec une réputation solide. NV Casino FR a une licence de jeu valide et offre une expérience de jeu sûre et sécurisée.

Leur équipe de service client est professionnelle et réactive, ce qui est très important pour moi. Je suis heureux de recommander NV Casino FR à tous ceux qui cherchent à jouer au casino en ligne en France.

************************************************************************

J’ai récemment essayé NV Casino FR et je suis vraiment impressionné. Leur plateforme est facile à utiliser et leur sélection de jeux est excellente.

En tant que joueur de 50 ans, je cherchais un site de confiance avec une expérience de jeu réaliste. NV Casino FR offre une expérience de jeu immersive avec des graphismes et des sons de haute qualité.

Leur équipe de service client est disponible 24h/24 et 7j/7, ce qui est très important pour moi. Je suis heureux de recommander NV Casino FR à tous ceux qui cherchent à découvrir l’univers du casino en ligne en France.

Vous vous demandez peut-être ce qu’est le NV Casino FR ? Il s’agit d’une plateforme de casino en ligne dédiée aux joueurs français.

Découvrez un univers de jeux incomparable, avec une large sélection de machines à sous, de jeux de table et de jeux en direct.

Le NV Casino FR offre-t-il des bonus intéressants NV Casino online login ? Oui, vous pouvez bénéficier de généreux bonus de bienvenue et de promotions régulières.

La sécurité est-elle assurée sur le NV Casino FR ? Absolument, le casino utilise les dernières technologies de cryptage pour protéger vos données personnelles et financières.

Alors, prêt à jouer au NV Casino FR et à découvrir l’univers du casino en ligne en France ? Inscrivez-vous dès maintenant et commencez à jouer !

Design and Develop by Ovatheme